The inventive concepts relate to devices for the storage of data, and more particularly, to storage devices including nonvolatile memory and to methods of operating storage devices including nonvolatile memory.
Flash memory, due in part to its nonvolatile memory characteristics and its ability to be erased and reprogrammed, has recently been adopted in a wide variety of data storage applications, including solid state drives (SSDs) and memory cards. Data is stored in flash memory by programming the threshold voltages of memory cells to one of two or more threshold voltage distributions representing respective logic (bit) values, and data is read from the flash memory by applying one or more predetermined read voltages to the memory cells to determine into which of the threshold voltage distributions the memory cells have been programmed. However, degradation of the memory cells over time can cause the threshold voltages of the memory cells to drift or vary from an originally programmed threshold voltage distribution. This drift in memory cell threshold voltages can result in read errors when applying the predetermined read voltages to the memory cells. Furthermore, even in storage systems which retry the read operation with different read voltage levels when an original read operation produces too many read errors, the time required for such read retry operations can significantly degrade the performance of the storage system, particularly in the case of so-called “cold data” which has not been read or updated in a considerable period of time.